package com.fowo.api.model.tmp.walmart.item;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
import com.fowo.api.common.excel.ImageConvert;
import com.fowo.api.sys.entity.SysFile;
import java.util.List;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/** 沃尔玛商品临时表 导入导出辅助模型 */
@Getter
@Setter
public class TmpWalmartItemExcelPo {

  @ExcelProperty(value = "店铺")
  private Long sid;

  @Size(max = 50, message = "SKU长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "SKU")
  private String localSku;

  @Size(max = 50, message = "品名长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "品名")
  private String localName;

  @Size(max = 50, message = "MSKU长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "MSKU")
  private String msku;

  @Size(max = 50, message = "商品ID长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "商品ID")
  private String itemId;

  @Size(max = 5000, message = "标题长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "标题")
  private String title;

  @Size(max = 50, message = "生命周期状态长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "生命周期状态")
  private String lifecycleStatus;

  @Size(max = 50, message = "发布状态长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "发布状态")
  private String publishedStatus;

  @Size(max = 1000, message = "状态变化的原因长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "状态变化的原因")
  private String statusChangeReason;

  @Size(max = 50, message = "商品类别长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "商品类别")
  private String productCategory;

  @Size(max = 50, message = "价格长度不能超过20")
  @ExcelProperty(value = "价格")
  private java.math.BigDecimal priceAmount;

  @Size(max = 50, message = "价格币种长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "价格币种")
  private String priceCurrency;

  @ExcelProperty(value = "Buy Box 价格")
  private java.math.BigDecimal buyBoxItemPrice;

  @ExcelProperty(value = "Buy Box 运费")
  private java.math.BigDecimal buyBoxShippingPrice;

  @Size(max = 50, message = "是否Buy Box长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "是否Buy Box")
  private String buyBoxEligible;

  @Size(max = 50, message = "MSRP长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "MSRP")
  private String msrp;

  @Size(max = 50, message = "商品税号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "商品税号")
  private String productTaxCode;

  @Size(max = 50, message = "运输方法长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "运输方法")
  private String shipMethods;

  @Size(max = 50, message = "商品重量长度不能超过20")
  @ExcelProperty(value = "商品重量")
  private java.math.BigDecimal shippingWeight;

  @Size(max = 50, message = "重量单位长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "重量单位")
  private String shippingWeightUnit;

  @Size(max = 50, message = "发货时限长度不能超过20")
  @ExcelProperty(value = "发货时限")
  private Integer fulfillmentLagTime;

  @Size(max = 50, message = "发货方式长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "发货方式")
  private String fulfillmentType;

  @Size(max = 50, message = "WFS销售限制长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "WFS销售限制")
  private String wfsSalesRestriction;

  @Size(max = 50, message = "沃尔玛产品ID长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "沃尔玛产品ID")
  private String wpid;

  @Size(max = 50, message = "GTIN长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "GTIN")
  private String gtin;

  @Size(max = 50, message = "UPC长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "UPC")
  private String upc;

  @Size(max = 1000, message = "商品页面地址长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "商品页面地址")
  private String itemPageUrl;

  @Size(max = 1000, message = "主图地址长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "主图地址")
  private String primaryImageUrl;

  @Size(max = 50, message = "货架名称长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "货架名称")
  private String shelfName;

  @Size(max = 500, message = "商品类别路径长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "商品类别路径")
  private String primaryCategoryPath;

  @Size(max = 50, message = "品牌长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "品牌")
  private String brand;

  @DateTimeFormat("yyyy年MM月dd日")
  @ExcelProperty(value = "销售开始日期")
  private java.util.Date offerStartDate;

  @DateTimeFormat("yyyy年MM月dd日")
  @ExcelProperty(value = "销售结束日期")
  private java.util.Date offerEndDate;

  @DateTimeFormat("yyyy年MM月dd日")
  @ExcelProperty(value = "商品创建时间")
  private java.util.Date itemCreationDate;

  @DateTimeFormat("yyyy年MM月dd日")
  @ExcelProperty(value = "商品更新时间")
  private java.util.Date itemLastUpdated;

  @ExcelProperty(value = "评论数")
  private Integer reviewsCount;

  @Size(max = 50, message = "评分长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "评分")
  private String averageRating;

  @Size(max = 50, message = "可搜索长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "可搜索")
  private String searchable;

  @Size(max = 50, message = "变体组ID长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "变体组ID")
  private String variantGroupId;

  @Size(max = 50, message = "是否主变体长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "是否主变体")
  private String primaryVariant;

  @Size(max = 1000, message = "变体组属性长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "变体组属性")
  private String variantGroupingAttributes;

  @Size(max = 1000, message = "变体属性值长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "变体属性值")
  private String variantGroupingValues;

  @Size(max = 1000, message = "竞争商品网站长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "竞争商品网站")
  private String competitorUrl;

  @Size(max = 50, message = "竞争商品价格长度不能超过20")
  @ExcelProperty(value = "竞争商品价格")
  private java.math.BigDecimal competitorPrice;

  @Size(max = 50, message = "竞争商品运费长度不能超过20")
  @ExcelProperty(value = "竞争商品运费")
  private java.math.BigDecimal competitorShipPrice;

  @Size(max = 50, message = "竞争信息更新时间长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日")
  @ExcelProperty(value = "竞争信息更新时间")
  private java.util.Date competitorLastDateFetched;

  @Size(max = 50, message = "定价策略长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "定价策略")
  private String repricerStrategy;

  @Size(max = 50, message = "卖方最低限价长度不能超过20")
  @ExcelProperty(value = "卖方最低限价")
  private java.math.BigDecimal minimumSellerAllowedPrice;

  @ExcelProperty(value = "卖方最高限价")
  private java.math.BigDecimal maximumSellerAllowedPrice;

  @Size(max = 50, message = "重新定价状态长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "重新定价状态")
  private String repricerStatus;

  @ExcelProperty(value = "图片", converter = ImageConvert.class)
  private List<SysFile> image;
}
